home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Suzy B Software 2
/
Suzy B Software CD-ROM 2 (1994).iso
/
extras
/
programm
/
gemfsc19
/
gemfsc19.lzh
/
GEMFUNCS
/
FRMDESKT.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-05-07
|
2KB
|
57 lines
/**************************************************************************
*
*************************************************************************/
#include "gemfintl.h"
#ifndef LATTICE
short wind_newdesk(tree, obj)
OBJECT *tree;
short obj;
{
int upr, lwr;
upr = (int)((long)tree >> 16);
lwr = (int)((long)tree & 0x0000FFFF);
return wind_set(0, WF_NEWDESK, upr, lwr, obj, 0);
}
#endif
void frm_desktop(options, ptree)
long options;
register OBJECT *ptree;
{
register OBJECT *pobj2;
short fill;
short color;
long ospec;
wind_update(BEG_UPDATE);
if ((options & FRM_DTREMOVE) || ptree == NULL) {
wind_newdesk(NULL, 0);
} else {
if (options & FRM_CENTER) {
rc_copy(&gl_rwdesk, (GRECT*)&ptree->ob_x); /* copy desk xywh to tree */
if (!(ptree->ob_flags & LASTOB)) { /* if there's another object */
pobj2 = ptree + 1; /* center it on the screen */
pobj2->ob_x = (ptree->ob_width - pobj2->ob_width) / 2;
pobj2->ob_y = (ptree->ob_height - pobj2->ob_height) / 2;
}
}
apl_vshared(); /* fill in gl_vwout[] */
if (gl_vwout[13] == 2) { /* monochrome monitor? */
ospec = (long)obj_gvalue(ptree, 0); /* if so, and the */
fill = (short)((ospec & 0x00000070L) >> 4);/* desktop is a solid */
color = (short)(ospec & 0x0000000FL); /* color, change it to */
if (fill == 7 && color > 0) { /* halftone gray. */
obj_svalue(ptree, 0, (long)((ospec & 0xFFFFFF00L) | 0x00000041L));
}
}
wind_newdesk(ptree, 0);
}
wind_update(END_UPDATE);
frmx_dial(FMD_FINISH, NULL, &gl_rwdesk); /* paint the new desktop */
}